home *** CD-ROM | disk | FTP | other *** search
- Path: rcp6.elan.af.mil!rscernix!danpop
- From: danpop@mail.cern.ch (Dan Pop)
- Newsgroups: comp.lang.c
- Subject: Re: Fun with <time.h>
- Date: 19 Mar 96 11:58:31 GMT
- Organization: CERN European Lab for Particle Physics
- Message-ID: <danpop.827236711@rscernix>
- References: <Pine.A32.3.91.960318145539.118335A-100000@red.weeg.uiowa.edu>
- NNTP-Posting-Host: ues5.cern.ch
- X-Newsreader: NN version 6.5.0 #7 (NOV)
-
- In <Pine.A32.3.91.960318145539.118335A-100000@red.weeg.uiowa.edu> The Amorphous Mass <robinson@blue.weeg.uiowa.edu> writes:
-
-
- > On a side note, what does happen if you pass an incompletely filled
- >struct tm (ie, some fields set to 0) to mktime()? I got some pretty
- >colorful results from DEC C...
-
- 4.12.2.3 The mktime function
-
- Synopsis
-
- #include <time.h>
- time_t mktime(struct tm *timeptr);
-
- Description
-
- The mktime function converts the broken-down time, expressed as
- local time, in the structure pointed to by timeptr into a calendar
- time value with the same encoding as that of the values returned by
- the time function. The original values of the tm_wday and tm_yday
- components of the structure are ignored, and the original values of
- the other components are not restricted to the ranges indicated
- above. On successful completion, the values of the tm_wday and
- tm_yday components of the structure are set appropriately, and the
- other components are set to represent the specified calendar time, but
- with their values forced to the ranges indicated above; the final
- value of tm_mday is not set until tm_mon and tm_year are determined.
-
- Returns
-
- The mktime function returns the specified calendar time encoded as
- a value of type time_t . If the calendar time cannot be represented,
- the function returns the value (time_t)-1 .
-
- Example
-
- What day of the week is July 4, 2001?
-
-
- #include <stdio.h>
- #include <time.h>
- static const char *const wday[] = {
- "Sunday", "Monday", "Tuesday", "Wednesday",
- "Thursday", "Friday", "Saturday", "-unknown-"
- };
- struct tm time_str;
-
-
-
- time_str.tm_year = 2001 - 1900;
- time_str.tm_mon = 7 - 1;
- time_str.tm_mday = 4;
- time_str.tm_hour = 0;
- time_str.tm_min = 0;
- time_str.tm_sec = 1;
- time_str.tm_isdst = -1;
- if (mktime(&time_str) == -1)
- time_str.tm_wday = 7;
- printf("%s\n", wday[time_str.tm_wday]);
-
- So, if DEC C behaves differently, it's broken.
-
- Dan
- --
- Dan Pop
- CERN, CN Division
- Email: danpop@mail.cern.ch
- Mail: CERN - PPE, Bat. 31 R-004, CH-1211 Geneve 23, Switzerland
-